package com.wutong.resonance.model.exception;

/**
 * 自定义异常类，用于处理音频相关的异常
 * @author wutong
 */
public class AudioException extends RuntimeException {
    public AudioException(String message) {
        super(message);
    }

    public AudioException(String message, Throwable cause) {
        super(message, cause);
    }

    public AudioException(Throwable cause) {
        super(cause);
    }

    public AudioException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }

    public AudioException() {
        super();
    }

    /**
     * 自定义异常类，用于处理音频文件加载异常
     * @author wutong
     */
    public static class AudioFileLoadException extends AudioException {
        public AudioFileLoadException(String message) {
            super(message);
        }

        public AudioFileLoadException(String message, Throwable cause) {
            super(message, cause);
        }

        public AudioFileLoadException(Throwable cause) {
            super(cause);
        }

        public AudioFileLoadException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
            super(message, cause, enableSuppression, writableStackTrace);
        }

        public AudioFileLoadException() {
            super();
        }
    }

    public static class AudioRecordException extends AudioException {
        public AudioRecordException(String message) {
            super(message);
        }

        public AudioRecordException(String message, Throwable cause) {
            super(message, cause);
        }

        public AudioRecordException(Throwable cause) {
            super(cause);
        }

        public AudioRecordException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
            super(message, cause, enableSuppression, writableStackTrace);
        }

        public AudioRecordException() {
            super();
        }
    }

    public static class AudioFileSaveException extends AudioException {
        public AudioFileSaveException(String message) {
            super(message);
        }

        public AudioFileSaveException(String message, Throwable cause) {
            super(message, cause);
        }

        public AudioFileSaveException(Throwable cause) {
            super(cause);
        }

        public AudioFileSaveException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
            super(message, cause, enableSuppression, writableStackTrace);
        }

        public AudioFileSaveException() {
            super();
        }
    }
}
